// 引入 Request
import Request from './index.js'
import store from '../store/index'

// 设置 通用的 baseUrl 以及 header
// export var baseUrl = 'https://router.goody.icu:8888'

// export var baseUrl = 'https://192.168.123.206:8888'
// export var baseUrl = 'https://router.goody.icu:8888'
// export var baseUrl = 'https://lovedonote.goodykj.com:8890'
export var baseUrl = 'https://docs.apipost.cn/preview/2015a44f1d722eb5/ad84d8557276f59a' //测试服务器
export var upUrl = 'https://fangguaner.wm76.mtnet.ren/api/UploadFile/index' //测试服务器
// export var baseUrl = 'https://lovedonote.goodykj.com:8080'
const config = {
	baseUrl: baseUrl,
	header: {
		"content-type": "application/json"
	}
}
// 设置自己的请求拦截器，必须加上 `async`
// 请求前的拦截，比如是否登录/过期/刷新token/...
const reqInterceptor = async (options) => {
	// 微信静默登录 不等于-1说明存在
	// if (options.url.indexOf('/oauth/token') !== -1) {
	//     options.header['Authorization'] = "Basic Y29uc3VtZXI6Y29uc3VtZXI="
	// }


	//不是下列接口的话就带上token
	//   if ((options.url.indexOf('/api/index/sign_in') === -1)) {
	// debugger
	//       let access_token = uni.getStorageSync('access_token')
	//       options.header['Authorization'] = `Bearer ${access_token}`
	//   }


	//不是下列接口的话就带上token
	if ((options.url.indexOf('/logistics/CenterAdmin/loginByPassword') === -1)) {
		let token = uni.getStorageSync('token')
		options.header['Authorization'] = `${token}`
		// options.data = {
		// 	...options.data,
		// 	...{
		// 		token: token
		// 	}
		// }
		// debugger
	}


	// 必须返回一个 Object
	// 拦截请求：return {mypReqToCancel: true, ...}
	// TODO: 添加任意拦截逻辑
	return options
}

// 设置自己的响应拦截器
// 统一对返回的数据进行整理，方便接口统一使用
// conf是您api的options信息，一般情况下您只需要用到您自定义的标记字段

const resInterceptor = (response, conf = {}) => {
	console.log(response)
	// if(store.state.debug){
	//     console.log(response,'测试环境模式，响应拦截器数据')
	// }
	if (response.mypFail) {
		uni.hideLoading();
		uni.showToast({
			title: '服务器异常，请联系管理员',
			icon: 'none',
			duration: 2000
		})
		return Promise.reject(response)
	}
	// 必须返回你需要处理的数据，将会进入resolve（then中处理）
	// 如果需要reject，需要设置mypReqToReject:true，还可以携带自己定义的任何提示内容（catch中处理）
	// uni.request进入fail也会进入该拦截器（为了统一处理逻辑），这个时候的response参数为{mypFail: true, response: fail info}。fail时不管返回啥，都进入reject(catch)
	if (response.statusCode !== 200) {
		uni.hideLoading();
		uni.showToast({
			title: '服务器挂掉了',
			icon: 'none',
			duration: 2000
		})
		return Promise.reject(response)
	}
	if (response.data.code == -1) {
		uni.showToast({
			title: response.data.message,
			icon: "none",
			duration: 1500
		})
		setTimeout(function() {
			return uni.redirectTo({
				url: "/pages/login/index"
			})
		}, 1500)
	}

	//   if(response.data.code == 999 || response.data.code == 998){
	// let identity=uni.getStorageSync("identity")
	// if(identity==="经纪人"){
	// 	uni.clearStorage();
	// 	uni.showToast({
	// 		title:response.data.message,
	// 		icon:"none",
	// 		duration:1500
	// 	})
	// 	setTimeout(function(){
	// 		return uni.redirectTo({
	// 			url:"/pages/index/index"
	// 		})
	// 	},1500)
	// }else{
	// 	uni.clearStorage();
	// 	store.commit('changeCheckLogin', false)
	// 	// return store.dispatch('checkLogin')
	// 	// store.dispatch('', payload)
	// 	return uni.navigateTo({
	// 	     url: '/pagesA/my/index'
	// 	});
	// }
	//   }
	if (response.data.code != 1) {
		uni.hideLoading();
		uni.showToast({
			title: response.data.message,
			icon: 'none',
			duration: 2000
		})
		return Promise.reject(response.data)
	}
	return response.data
}

// 实例化请求器
// 您可以根据需要实例化多个请求器
const req = new Request(config, reqInterceptor, resInterceptor)

export default req
